package com.job.ZhangMeng.Homework0714;

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

/**
 * 2022.07.14  BigDecimal大十进制数
 * 张孟
 */

public class UseBig {

    public static void main(String[] args) {
        double d1=2.0,d2=1.1;
        System.out.println(d1-d2);

        //大数不能使用普通的算术运算,需要使用相应的方法
        BigDecimal b1 =new BigDecimal("18.123456789123456789123456789");
        BigDecimal b2 =new BigDecimal("2.7182818284590452353602874713527");

        BigDecimal result=b1.divide(b2,30, RoundingMode.HALF_UP);//b1除以b2,精度为保留30位小数,四舍五入
        System.out.println(result);

        BigDecimal b3=new BigDecimal(3.14);

        BigDecimal multi0=b1.multiply(b3);  //b1*b3,未设定精度和舍入方式
        System.out.println(multi0);

        BigDecimal multi1=b1.multiply(b3,new MathContext(30,RoundingMode.HALF_UP));
                                    //b1*b3,精度为30(总长30),四舍五入
        System.out.println(multi1);

        BigDecimal multi2=b1.multiply(b3);
        multi2=multi2.setScale(30, RoundingMode.HALF_UP);//b1*b3,精度为保留30位小数,四舍五入
        System.out.println(multi2);
    }

}
